The present invention relates to the field of interface devices used for transmitting data between functionally partitioned electronic devices or modules and more specifically to interfaces that have the flexibility for both asynchronous and clock edge triggered synchronous transmission of data.
Presently, the latch circuit is used to implement the interface when both the asynchronous and the synchronous transmission of data is devised. The latch has a control line which has two states. In one state the latch passes data. The latch output asynchronously follows the input data. This condition continues until the latch is placed in the second control state. Then whatever output was present just prior to the control line transition is held on the latch output regardless of fluctuations on the input later in time. The output again follows the input upon transition back to the first control state.
Difficulties with the latch circuit arise when an attempt is made to connect the output of asynchronous functional circuitry to an input of the same circuitry through a latch interface. When the inputs to the asynchronous functional circuitry are altered, the outputs, after some time T.sub.1, go into a transient state until time T.sub.2. When the output feeds into an input, the latch must pass the output data into itself and transfer to the hold state within the time T.sub.1. If this time restriction is not met, a "race" condition will occur causing the circuitry to go unstable. In general, T.sub.1 will be varied over a wide range of values depending upon the complexity of the functional circuitry. It is even possible that T.sub.1 may be shorter than the response of the latch control line for some implementations making utilization totally impossible.
Another known interface device is the edge triggered register. On the directed transition of a clock signal, the input of the edge triggered register is transferred to the output. The register does not have the race danger experienced with the latch circuit, but is unsuitable for many applications due to the fact that it is incapable of asynchronous transmission of data.